package com.talent.service.file.service;

import io.minio.ObjectWriteResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * @ClassName：IMinonService
 * @Author: hszhou
 * @Date: 2025/1/7 13:25
 * @Description: 必须描述类做什么事情, 实现什么功能
 */
public interface IMinioService {


     /**
      * 判断文件是否存在
      * @param bucketName
      * @param objectName
      * @return
      */
     boolean isObjectExist(String bucketName, String objectName);


     /**
      * 断点下载
      * @param bucketName
      * @param objectName
      * @param offset
      * @param length
      * @return
      */
     InputStream getObject(String bucketName, String objectName, long offset, long length);

     InputStream getObject(String bucketName, String objectName);
     /**
      * 上传文件
      * @param bucketName
      * @param file
      * @return
      */
     ObjectWriteResponse uploadFile(String bucketName, MultipartFile file);


     ObjectWriteResponse uploadFile(String bucketName, String objectName, InputStream inputStream);

     void removeFile(String bucketName, String objectName);
     /**
      * 获取文件外链
      * @param bucketName
      * @param objectName
      * @return
      */
     String getPresignedObjectUrl(String bucketName, String objectName);

     String getPresignedObjectUrl(String bucketName, String objectName, Integer expires);


}
